package com.ting.test.algorithms.大厂刷题班;

/**
 * 需要考虑溢出的问题
 * 思路
 * 负数比正数表示的范围大10倍
 * 可以把数转化为负数再比较
 */
public class 翻转数字 {
    public static void main(String[] args) {

        int s=prpcess(453);
        System.out.println(s);
    }

    private static int prpcess(int i) {
        if (0 == i) {
            return 0;
        }

        i = i < 0 ? i : -i;
        int M = i / 10;//整除10
        int O = i % 10;//取余
        int result = 0;
        while (i != 0) {
            if (result <M) {//首先判断当前数是否超过了M 一旦超M result*10就会超过最小值
                return 0;
            }
            if (result == M && i % 10 < O) {//如果当前result正好等于M 那么当i取余后，相加就一定超了
                return 0;

            }
            result = result * 10 + i % 10;
            i = i / 10;

        }

        return Math.abs(result);

    }
}
